package org.javaboy.openfeign.service;

import org.javaboy.commons.model.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

/**
 * 声明一个FeignClient接口，这个接口的名称就是服务名
 * 这里就是绑定了 provider 服务，这个接口中将来声明的所有调用，都是调用 provider 服务
 */
//@FeignClient(name = "provider")
public interface IUserService {
    @GetMapping("/user")
    User getUserById(@RequestParam("id") Integer id, @RequestHeader("token") String token);

    /**
     * 添加用户，key-value 格式的参数
     *
     * @return
     */
    @PostMapping("/user")
    User addUser(@RequestParam("username") String username, @RequestParam("id") Integer id);

    /**
     * JSON 参数
     *
     * @param user
     * @return
     */
    @PutMapping("/user")
    User updateUser(@RequestBody User user);

    @DeleteMapping("/user/{id}")
    void deleteUser(@PathVariable("id") Integer id);
}
